package TwentyOne.Class.Jc;

/*
定义员工类：具有姓名、年龄、性别属性,并具有构造方法和显示数据方法。
定义管理层类：继承员工类, 并有自己的属性职务和年薪。 
定义职员类：继承员工类,并有自己的属性所属部门和月薪。
 */
class Employee {

    private String name;
    private int age;
    private String sex;

    public Employee() {
    }

    public Employee(String name, int age, String sex) {
        this.name = name;
        this.age = age;
        this.sex = sex;
    }

    public String getInfo() {
        return "姓名：" + this.name + "、年龄：" + this.age + "、性别：" + this.sex;
    }
}

class Manager extends Employee {

    private String job;
    private double income;

    public Manager() {
    }

    public Manager(String name, int age, String sex, String job, double income) {
        super(name, age, sex);
        this.job = job;
        this.income = income;
    }

    public String getInfo() {
        return "【管理层】" + super.getInfo() + "、职务：" + this.job + "、年薪：" + this.income;
    }
}

class Staff extends Employee {

    private String dept;
    private double salary;

    public Staff() {
    }

    public Staff(String name, int age, String sex, String dept, double salary) {
        super(name, age, sex);
        this.dept = dept;
        this.salary = salary;
    }

    public String getInfo() {
        return "【职员】" + super.getInfo() + "、部门：" + this.dept + "、月薪：" + this.salary;
    }
}

public class a14_Mg {

    public static void main(String[] args) {
        Manager mgr = new Manager("张三", 38, "女", "主管", 150000.00);
        Staff sta = new Staff("李四", 18, "男", "出纳", 3000.00);
        System.out.println(mgr.getInfo());
        System.out.println(sta.getInfo());
    }
}
